package com.nutricia.common.api;

import com.nutricia.common.api.request.CreateSystemUserReq;
import com.nutricia.common.api.request.CurrentLoginUserRequest;
import com.nutricia.common.api.request.GetUserAndRoleReq;
//import com.nutricia.common.api.request.GetUserByPermissionCodeReq;
import com.nutricia.common.api.request.GetUserNameReq;
import com.nutricia.common.api.request.LoginReq;
//import com.nutricia.common.api.request.PageGetSystemUserReq;
import com.nutricia.common.api.request.UpdateSystemUserReq;
import com.nutricia.common.api.request.UpdateSystemUserStateReq;
import com.nutricia.common.api.result.CreateSystemUserRes;
import com.nutricia.common.api.result.GetUserAndRoleRes;
//import com.nutricia.common.api.result.GetUserByPermissionCodeRes;
import com.nutricia.common.api.result.GetUserNameRes;
import com.nutricia.common.api.result.GetUserPermissionAndMenuRes;
import com.nutricia.common.api.result.LoginRes;
//import com.nutricia.common.api.result.PageGetSystemUserRes;
import com.nutricia.common.api.result.UpdateSystemUserRes;
import com.nutricia.common.api.result.UpdateSystemUserStateRes;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 系统用户
 *
 * @author: huangsheng
 * @date: 2017/10/24
 */
@RestController
@RequestMapping("/systemUser")
public interface SystemUserFacade {

    /**
     * 登入CMS接口
     *
     * @param loginReq 登入相关类
     */
    @RequestMapping("SystemUserLogin")
    LoginRes login(@RequestBody LoginReq loginReq);

    /**
     * 分页获取系统用户数据
     *
     * @author: huangsheng
     * @date: 2017/10/19 下午5:21
     */
//    @RequestMapping("/pageGetSystemUser")
//    PageGetSystemUserRes pageGetSystemUser(@RequestBody PageGetSystemUserReq pageGetSystemUserReq);

    /**
     * 创建用户
     *
     * @author: huangsheng
     * @date: 2017/10/25 下午1:45
     */
    @RequestMapping("createSystemUser")
    CreateSystemUserRes createSystemUser(@RequestBody CreateSystemUserReq createSystemUserReq);

    /**
     * 获取用户和用户的角色数据
     *
     * @author: huangsheng
     * @date: 2017/10/25 下午1:45
     */
    @RequestMapping("getSystemUserRole")
    GetUserAndRoleRes getUserAndRoleRes(@RequestBody GetUserAndRoleReq getUserAndRoleReq);

    /**
     * 更新用户数据
     *
     * @author: huangsheng
     * @date: 2017/10/25 下午5:37
     */
    @RequestMapping("updateSystemUser")
    UpdateSystemUserRes updateSystemUser(@RequestBody UpdateSystemUserReq updateSystemUserReq);

    /**
     * 禁用、启用用户
     *
     * @author: huangsheng
     * @date: 2017/10/25 下午5:38
     */
    @RequestMapping("updateSystemUserState")
    UpdateSystemUserStateRes disableOrEnable(@RequestBody UpdateSystemUserStateReq updateSystemUserStateReq);

    /**
     * 获取用户的权限和权限下的menu数据
     *
     * @author: huangsheng
     * @date: 2017/10/25 下午5:38
     */
    @RequestMapping("getSystemUserMenuPermission")
    GetUserPermissionAndMenuRes getUserPermissionAndMenu(@RequestBody CurrentLoginUserRequest currentLoginUserRequest);

    /**
     * 通过用户ID获取用户名称
     *
     * @author: huangsheng
     * @date: 2018/3/1 下午1:32
     */
    @RequestMapping("getUserInfoById")
    GetUserNameRes getUserNameById(@RequestBody GetUserNameReq getUserNameReq);

}
